/*头文件包含*/
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

/*OLED屏幕的参数像素点配置，*/
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

/*软件模拟SPI的接口*/
// Declaration for SSD1306 display connected using software SPI (default case):
#define OLED_MOSI   9    //数据线
#define OLED_CLK   10    //时钟线
#define OLED_DC    11    //数据/命令标志（0，命令；1，数据）
#define OLED_CS    12    //片选信号
#define OLED_RESET 13    //复位信号
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,     //这个是软件SPI的构造函数，创建了一个Adafruit_SSD1306类，类的名字叫做display
  OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

/*下面是硬件SPI的接口，如果需要使用硬件SPI，则将下面取消注释，注释上面软件SPI接口即可*/
/* Comment out above, uncomment this block to use hardware SPI
#define OLED_DC     6
#define OLED_CS     7
#define OLED_RESET  8
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,     //这个是硬件SPI的构造函数，创建了一个Adafruit_SSD1306类，类的名字叫做display
  &SPI, OLED_DC, OLED_RESET, OLED_CS);
*/

/*
下面是一些比较基础的函数
display.clearDisplay();               //清除缓冲区函数，清屏函数
display.display();            //显示当前缓冲区内的内容
display.setTextSize(s);               //设置字体大小，参数S = 1/2/3....
display.setCursor(x,y);               //设置光标位置，参数为坐标
display.setTextColor(value);          //设置字体颜色，默认WHITE
display.steTextWrap();                //设置自动换行，参数为true或者false
display.drawBitmap(x,y,Bitmap,w,h,c); //x,y是图像的坐标，Bitmap为图像数据(可以是数组名，也可以是指针)，w,h,为图像的宽和高，c是颜色，

*/

void setup() {
  Serial.begin(9600);

  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  //display.begin这个函数还有其他的参数，但是这里是C++的语法，提供的库函数里面有默认参数，所以可以不用填。默认即可。
  if(!display.begin(SSD1306_SWITCHCAPVCC)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
    display.clearDisplay();   //清除缓存
  display.setTextSize(2);     //设置字体大小，默认是1，写入2就是放大1呗，以此类推
  display.setTextColor(1);    //设置字体颜色，对于oled来说，写1是有颜色，0是没颜色
  display.setCursor(0,0);     //设置光标位置，后面填写地址，都是相对于光标的偏移量
  display.print("Hello");        //输出"Hello"到缓存里面,只能显示英文，中文会乱码
  display.display();            //显示当前缓冲区内的内容


}

void loop() {
}












